/**
 * api接口管理， 全部以$开头 
 * @author will
 * @site https://merchant.jdyd.xyz
 * @date 2021/12/17 09:57
 */

import { http } from '@/http/http.js'
import appConfig from '@/config/appConfig.js'
import storageManage from '@/util/storageManage.js'
import $infoBox from '@/common/fun.js'

/**
 * 用户活动参与方式
 * used：$awakeActivityByPhone（027老客唤醒）$activityTakePartIn（参与活动统一接口）
 * @param {Object} data 请求参数
 */
function dataHandlerForJoinType(data){
	const { activityTemplateNo, activityChannelId, isShareFriend, isInviteByQrcode } = data
	let joinType = 0
	if(activityTemplateNo === 'ACTE004'){	// 扫码领券 用户参与活动方式为4(请求参数中需要携带qrcodeRecordId)
		joinType = 4
	}else if(isShareFriend){	// 转发朋友 用户参与活动方式为1（请求参数中需要携带fansId）
		joinType = 1
	}else if(isInviteByQrcode){	// 通过他人分享的小程序码参与活动（请求参数中需要携带fansId）-- 暂时没有当前活动
		joinType = 6
	}else if(activityChannelId){	// 通过渠道码参与活动 （请求参数中需要携带activityChannelId）
		joinType = 2
	}else {	// 自然流量参与活动
		joinType = 0
	}
	return { ...data, joinType }
}

/**
 * 验证码统一接口：
 * flag
 * 0、登录
 * 1、修改密码
 * 2、添加用户
 * 3、商户认证
 * 4、短信验证码
 * 5、修改密码验证码
 * 6、预约有礼
 * 7、虚拟券充值
 * 8、商户自主认证发券
 * 9、注销小程序
 * 10、实名认证
 */
export function $sendSmsCode(data) {
	return http.post('/api/sms/smsCode', data)
}
/**
 * @param {Object} data
 * data - { smsCode, phone, flag }
 */
export function $checkSmsCode(data){
	return http.post('/api/sms/checkSmsCode', data)
}
/* 获取上传form信息 */
export function $ossFilesForm(data) {
	return http.req('/api/ossFiles/form', data, 'POST')
}

/* OCR图片识别 */
export function $imgInfoDetail(data) {
	return http.req('/api/imgInfo/detail', data, 'POST')
}

// 小程序配置信息（服务协议、隐私政策、福分规则）
export function $liteConfigInfo(){
	return http.post('/api/lite/configInfo')
}

// 收藏---------------------暂定(后端没有)
export function $collectMch(data) {
	return http.req('/api/mchCollect/collectMch', data, 'POST')
}
// 取消收藏---------------------暂定(后端没有)
export function $cancelCollect(data) {
	return http.req('/api/mchCollect/cancelCollect', data, 'POST')
}

// 轮播图列表
export function $liteBannerList(data) {
	return http.add('/api/liteBanner/list', data)
}
/* 版本检测 */
export function $versionDetection(data) {
	return http.list('/api/anon/clientVersion/versionInfo', data)
}


// 改版---------------------------
// 登录获取小程序openid
export function $fansLogin(data) {
	return http.post('/api/fans/getPlaceWxchatOpenid',data)
}

// 用户修改信息
export function $fansUpdate(data) {
	return http.post('/api/fans/update', data)
}
// 我的地址
// 地址列表
export function $addressList(data) {
	return http.post('/api/fans/getAddressList', data)
}
// 新增地址
export function $addressAdd(data) {
	return http.post('/api/fans/addAddress', data)
}
// 修改用户地址
export function $addressUpdate(data) {
	return http.post('/api/fans/updateAddress', data)
}
// 我的地址删除
export function $addressDel(data) {
	return http.post("/api/fans/delAddress", data);
}
// 福分、待使用福券、未核销奖品数量
export function $scoreCoupon(data, showLoading) {
	return http.post('/api/fans/scoreOrcouponCount', data, showLoading)
}
// 卡券详情，福分详情
export function $awardDetail(data, showLoading) {
	return http.post('/api/award/coupon/details', data, showLoading)
}
// 福分记录
export function $scoreRecord(data) {
	return http.post('/api/scoreRecord/recordList', data)
}
// 历史福分
export function $socreHistory(data) {
	return http.post('/api/scoreRecord/getOldScoreDetailList',data)
}
// 待使用福券	待使用、已使用、已过期
export function $couponList(data) {
	return http.post('/api/award/coupon/getcouponList', data)
}
// 我参与的活动
// 查询用户参与的活动列表 （分页）
export function $fansActivityList(data) {
	return http.post('/api/activity/getFansActivityList', data)
}

// 附近商圈列表
export function $marktingGroupNearList(data) {
	return http.add('/api/mchGroup/getMchInfoList', data)
}

// 福分乐园
// 福分规则
export function $getScoreRuleList(data) {
	return http.add('/api/scoreRule/getList', data)
}
// 福分任务
export function $scoreRecordSave(data) {
	return http.post("/api/scoreRecord/save", data);
}
// 签到记录
export function $scoreSignRecord(data) {
	return http.post("/api/scoreRecord/getSignList", data);
}
// 校验签到
export function $scoreSignCheck(data) {
	return http.post("/api/scoreRecord/checkSign", data);
}
// 福分商城
export function $scoreMallList(data) {
	return http.post('/api/scoreExchange/getList', { ...data, isFlag: 2 })
}
// 福分兑换奖品
export function $scoreExchange(data) {
	return http.post('/api/scoreRecord/exchange', data)
}
// 福分商城兑换 卡券前 校验同主体发券授权
export function $checkUserPayAuth(data) {
	return http.post('/api/scoreRecord/checkUserPayAuth', data)
}
// 商家列表
export function $mchList(data) {
	return http.post('/api/mchGroup/getMchInfoList', data)
}
// 商圈活动列表
export function $groupActivityList(data) {
	return http.post('/api/marketingGroup/getGroupActivityList', data)
}

// 用户详情
export function $fansDetail(data) {
	return http.post('/api/fans/detail', data)
}
// 卡券详情
export function $couponDetail(data) {
	return http.post('/api/qrcodeRecord/getRecordDetail', data)
}
// 活动详情
export function $fansActivityDetail(data) {
	return http.post('/api/activity/getFansActivityDetail', data)
}
// 扫码领券
export function $getCouponAward(data) {
	return http.post('/api/fans/getCouponAward', data)
}
// 发送验证码
export function $sendMsg(data) {
	return http.post('/api/sms/sendMsg', data)
}
// 实名认证
export function $realNameAuth(data) {
	return http.req('/api/realName/atuh', data, 'POST', {})
}
// 实物奖品导航至使用机构的机构列表
export function $agentDestroyList(data) {
	return http.post('/api/award/goods/getAgentDestroyList', data)
}
// 追加登录公众号支付获取openid
export function $payOpenId(data) {
	return http.post('/api/fans/getWxchatPayOpenid', data)
}
// 追加获取498地域公众号openid
export function $placeOpenid(data) {
	return http.req('/api/fans/getPlaceOpenid', data, 'POST', {})
}
// 通过code换取公众号openId
export function $placeCode(data) {
	return http.req('/api/fans/getCodePlaceOpenid', data, 'POST', {})
}
// 商户认证
export function $checkFansIsMch(data) {
	return http.req('/api/mainChart/checkFansIsMch', data, 'POST', {})
}
// 活动列表
export function $activityList(data) {
	return http.add('/api/activity/getActivityList', data)
}
// 活动详情
export function $activityDetail(data) {
	return http.add('/api/activity/details', data)
}
// 添加出资方公众号openid
export function $fansPay(data) {
	return http.add('/api/fansPay/add',data)
}
// 参与活动
export function $activityTakePartIn(data) {
	return http.add('/api/activity/takePartIn', dataHandlerForJoinType(data))
}
// 用户绑定商户
export function $fansBindMch(data) {
	return http.add('/api/fans/fansBindMch', data)
}
// 转盘活动 奖品列表
export function $getAwardList(data) {
	return http.add('/api/activity/awardList', data)
}
// 获取抽奖次数
export async function $getAwardTimes(activityId, activityTemplateNo) {
	const sjActivityTemplateNo = ['ACTE001','ACTE009','ACTE011','ACTE013']
	const requestData = {
		activityId
	}
	if(sjActivityTemplateNo.includes(activityTemplateNo)){	// 商家
		const mchNo = storageManage.userInfo().mchNo
		if(mchNo){
			requestData.mchNo = mchNo
		}else{
			uni.showModal({
				title: '无法参与',
				content: '当前用户未绑定商户身份，请绑定商户身份',
				success({ cancel }) {
					if(cancel) return
					uni.navigateTo({
						url: '/pageUser/bindMch/index'
					})
				}
			})
			return Promise.reject('noMchNo')
		}
	}else{	// 消费者
		requestData.userId = storageManage.userId()
	}
	const { bizData } = await http.add('/api/activity/awardTimes', requestData)
	if(!bizData){
		// $infoBox.toast('您暂没有活动参与资格')
		return Promise.reject()
	}
	return Promise.resolve(bizData)
}
// 卡券导航到适用门店
export function $couponMchList(data){
	return http.add('/api/award/coupon/getMchInfoDestroyList',data)
}
// 用户手机号
export function $getUserWxPhone(data){
	return http.add('/api/fans/getuserphonenumber',data)
}
// 用户登录 退出登录
export function $userLoginExit(data){
	return http.add('/api/fans/userExit',data)
}
// 请求最近的网点
export function $getNearAgentNo(data){
	return http.add('/api/fans/findFansBindAgent',data)
}
// 绑定网点
export function $bindAgentNo(data){
	return http.add('/api/fans/fansBindAgent',data)
}
// 商户认证接口发送验证码 
export function $getMchSmsCode(data){
	return http.add('/api/mainChart/sendSmsCode',data)
}
//手机号迁移福分发送验证码
export function $getPhoneTransferCode(data){
	return http.add('/api/scoreRecord/sendMoveScoreCode',data)
}
// 手机号迁移福分
export function $oldScoreMoveByPhone(data){
	return http.add('/api/scoreRecord/oldScoreMoveByPhone',data)
}
// 越减越便宜 获取A券总数量以及已领取数量 用户计算卡券剩余数量
export function $getCouponNumber(data){
	return http.post('/api/activity/getActivityCouponNum',data)
}
// 越减越便宜 新版 奖品列表接口
export function $getActivityAwards(data){
	return http.add('/api/activity/getActivityAwards',data)
}
// 越减越便宜 拉新 受邀 信息填写接口
export function $confirmSendCoupon(data){
	return http.add('/api/realName/confirmSendCoupon',data)
}
// 实名认证 激活卡券 -- > 受邀人实名认证 邀请人卡券激活
export function $realNameSendCoupon(data) {
	return http.post('/api/realName/sendCoupon', data)
}
// 发放待激活卡券
export function $sendAwardToUser(data){
	return http.add('/api/realName/sendAwardToUser',data)
}
// 拉新 预约 获得奖品记录
export function $getAciticityAwardItems(data){
	return http.add('/api/activity/getActivityAwardItems',data)
}
// 预约获得奖品
export function $appointSendAward(data){
	return http.add('/api/realName/appointSendAward',data)
}
// 获取预约信息
export function $getAppointSendAward(data) {
	return http.add('/api/realName/getAppointAward',data)
}
// 查询扫码领券 奖品情况
export function $getFansAwardActivity(data) {
	return http.add('/api/activity/fansAwardActivity',data)
}
// 生成我的推荐码
/* {
        "pathUrl":""// 小程序跳转路径
} */
// 其中二维码参数（"scene":"inviterId="+fansId+"&inviterType=6"）
export function $generateReferralCode(data) {
	return http.add('/api/qrcodeRecord/getInviterUnlimitedQRCode',data)
}
// 确认邀请
/* 请求参数{
		"inviterUserId":"" 发起人用户id
		"userId":""        接受人用户id
		"realName":""           接受人姓名
		"phone":""         接收人手机号
		"fansId":""        接收人fansId        
	}
 */
export function $confirmInvite(data) {
	return http.add('/api/fans/inviterConfirmAward',data)
}
// 拉新记录
/**
 * 请求参数 { "userId":""// 用户id }
 * 返回参数 isFollow 关注公众号 0是1否
 */
export function $inviteRecords(data) {
	return http.add('/api/fans/getInviterList',data)
}
// 用户当天获得福分总数
export function $getUserScoreSum(data) {
	return http.add('/api/scoreRecord/getUserScoreSum',data)
}
// 是否存在实名任务
export function $checkActivity(data) {
	return http.add('/api/activity/checkActivity',data)
}
// 历史福分同步
export function $historyScoreSync(data) {
	return http.add('/api/scoreRecord/oldScoreMove',data)
}



// 生成商户活动码的记录
export function $getRecord(data) {
	return http.add('/api/qrcodeRecord/saveRecord', data,'POST')
}
// 生成商户活动码
export function $getCode(data) {
	return http.req('/api/qrcodeRecord/getUnlimitedQRCode', data,'POST')
}

// 获取商户活动列表信息
export function $activityCodeList(data){
	return http.req('/api/activity/getActivityByChannelCode',data,'POST')
}

// 预约有礼 发送验证码
export function $bookGiftSendMsg(data){
    return http.req('/api/sms/bookGiftSendMsg',data,'POST')
}

export function $equitySelectAssetLevelEquity(data){
    return http.req('/api/equity/selectAssetLevelEquity',data,'POST')
}
export function $equitySelectLevelEquity(data){
    return http.req('/api/equity/selectLevelEquity',data,'POST')
}
// 用户获奖列表
export function $getFansAwardByActivityId(activityId){
	return http.add('/api/activity/fansAwardList',{ activityId })
}
// 用户分享记录
export function $getFansShareList(activityId){
	return http.add('/api/share/record/list',{ activityId })
}
// 助力详情
export function $getActivityHelpDetail(data){
	return http.add('/api/activity/help/details',data)
}
// 新增发起助力
export function $activityInviteHelp(data){
	return http.add('/api/activity/help/add',data)
}
// 新增助力（被邀请人）：
export function $activityHelp(data){
	return http.add('/api/share/record/add',data)
}
// 助力记录：
export function $activityHelpRecords(data){
	return http.add('/api/share/record/details',data)
}
// 完成助力后 兑换奖励
export function $activityHelpExchange(data){
	return http.add('/api/share/record/exchange',data)
}

// 权益中心列表
export function $scoreExchangeEquityMallList(data){
    return http.req('/api/scoreExchange/equityMallList',data,'POST')
}

// 虚拟券兑换
export function $virtualCreateOrder(data){
    return http.req('/api/fans/order/virtual/createOrder',data,'POST')
}

// 查询权益栏目名称
export function $equitySelectEquityName(data){
    return http.req('/api/equity/selectEquityName',data,'POST')
}
// 卡券和实物兑换接口
export function $scoreRecordExchange(data){
    return http.req('/api/scoreRecord/exchange',data,'POST')
}
// ACTE025全区会员福利活动 查询奖品借口
export function $memberBenefitsAwards(data){
	return http.add('/api/temporary/selectactivities',data)
}
// ACTE025全区会员福利活动 奖品兑换接口
export function $memberBenefitsGet(data){
	return http.add('/api/temporary/activities',data)
}
// 发送验证码
export function $virtualSendMsg(data){
	return http.add('/api/sms/smsCode',data)
}


// CDK码
export function $fansCatcdk(data){
	return http.add('/api/fans/award/getCdk',data)
}

// /api/asset/selectMonth 查询月度
export function $assetSelectMonth(data){
	return http.req('/api/asset/selectMonth',data,'POST')
}

// /api/asset/selectQuarter 查询季度
export function $assetSelectQuarter(data){
	return http.req('/api/asset/selectQuarter',data,'POST')
}

// 福分乐园接口合并
export function $fufenAmusementPark(data){
	return http.req('/api/fufenAmusementPark',data,'POST')
}

// 长春商户认证 验证码接口
export function $bindMchCcSendMsg(data){
	return http.post('/api/sms/smsMchCode',data)
}
// 长春商户认证接口
export function $bindMchCc(data){
	return http.post('/api/award/coupon/addFile',data)
}
// 查询绑定商户信息（长春）
export function $getBindMchCcInfo(data){
	return http.post('/api/award/coupon/saveFile',data)
}
// 商户发券接口
export function $mchCcSendCoupon(data){
	return http.post('/api/award/coupon',data)
}
// 商家券查询接口
export function $getMchCcCoupon(data){
	return http.post('/api/award/coupon/selectactivities',data)
}
// 出资方校验接口 首页商家券
export function $checkUserPayAuthMch(data){
	return http.post('/api/award/coupon/couponPayAuth',data)
}
// 商家全领取接口
export function $getMchCoupon(data){
	return http.post('/api/temporaryNew/activities',data)
}
// 商家自主活动 商家申请代金券列表
export function $mchActivityCouponList(data){
	return http.post('/api/award/coupon/selectActivitiesMch',data)
}
// 商家自主活动 商家信息修改
export function $mchActivityEditMchInfo(data){
	return http.post('/api/award/coupon/updateProcessMch',data)
}
// 商家自主活动 卡券下架接口
export function $mchActivityRemoveCoupon(data){
	return http.post('/api/award/coupon/removeActivitiesMch',data)
}
// 商家自主活动 商户信息接口
export function $mchActivityMchInfo(data){
	return http.post('/api/award/coupon/mchInfo',data)
}
// 商家自主活动 卡券详情接口
export function $mchActivityCouponInfo(data){
	return http.post('/api/award/coupon/couponDetail',data)
}
// 商家自助派券活动 卡券修改接口
export function $mchActivityEditCoupon(data){
	return http.post('/api/award/coupon/upCouponInfo',data)
}

// 用户投诉
export function $apiLiteFeedbackAdd(data){
    return http.req('/api/liteFeedback/add',data,'POST')
}

// qa列表
export function $getQAList(data){
	return http.post('/api/sysQa',data)
}

// 新客户发福分接口
export function $awakeActivityByPhone(data){
	return http.post('/api/activity/awakeActivityByPhone',dataHandlerForJoinType(data))
}
// 验证验证码
export function $apiCheckPhnoeCode(data){
    return http.req('/api/sms/checkSmsCode',data,'POST')
}

// 用户注销
export function $apiDelFanUser(data){
    return http.req('/api/fans/delFanUser',data,'POST')
}

// 机构数据（树形结构，登录是绑定归属机构使用）
export function $agentInfoTree(){
	return http.post('/api/subList/queryOrgTree')
}

// 查询活动奖品数量（已领、周期总量）用于处理进度条
export function $getActivityAwardNum(data){
	return http.post('/api/activity/getActivityAwardNum',data)
}